<?php
//
// +--------------------------------------+
// |PHP version 5.6
// +--------------------------------------+
// |管理员管理api
// +--------------------------------------+
// |2017-12-27
// +--------------------------------------+
// |潘龙兵
// +--------------------------------------+
// |知果汇后台管理
// +--------------------------------------+
//
namespace app\api\controller;

use think\View;
use think\Controller;
use think\Db;
use \app\data\Data;
use app\api\model\Common;

class Admin extends Index
{
    /*
     * @知果汇后台管理
     * @角色管理--角色列表数据
     * @2017-12-29
     * @潘龙兵
    */
    public function auth_role()
    {
        $zgh_role = new Data('role');
        $where['status'] = 1;
        $field = 'id,name,time,desc';
        $res = $zgh_role->selectAll($where, $field);
        // dump($res);exit;
        if (isset($res) || empty($res)) {
            $this->_jsonp('200', '角色列表数据获取成功', $res);
        } else {
            $this->_jsonp('1000', '角色列表数据获取失败', null);
        }

    }


    /*
     * @知果汇后台管理
     * @管理员管理--数据查找
     * @2017-12-27
     * @潘龙兵
    */
    protected function admin($where, $number, $page)
    {

        $zgh_user = new Data('user');
        $where['u.status'] = array('neq', 0);
        $where['u.role'] = 1;
        $join[0] = '__ROLE__ r';
        $join[1] = 'r.id = u.r_id';
        $alias = 'u';
        $count = $zgh_user->countJion($where, $join, $alias);
        // dump($count);exit;
        $field = 'u.uid,u.username,u.phone,u.email,r.name,u.time,u.status';
        $data = $zgh_user->joinPage($page, $join, $alias, $where, $field, $number);
        // dump($data);exit;
        $res = model('Common')->page_data($count, $page, $number);
        $res['count'] = $count;
        $res['data'] = $data;
        return $res;
    }


    /*
     * @知果汇后台管理
     * @管理员管理--管理员列表
     * @2017-12-27
     * @潘龙兵
    */
    public function admin_list()
    {
        $number = 10;
        $page = (isset($_GET['page']) && !empty($_GET['page'])) ? $_GET['page'] : 1;
        $where = [];
        $res = $this->admin($where, $number, $page);
        // dump($res);exit;
        if (isset($res) || empty($res)) {
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','获取管理员列表123',1);*/
            $this->_jsonp('200', '管理员列表数据获取成功', $res);
        } else {
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','获取管理员列表',0);*/
            $this->_jsonp('1000', '管理员列表数据获取失败', null);
        }

    }


    /*
     * @知果汇后台管理
     * @管理员管理--条件筛选
     * @2017-12-27
     * @潘龙兵
    */
    public function admin_select()
    {
        $number = 10;
        $page = 1;
        $number = (isset($_GET['number']) && $_GET['number']) ? trim($_GET['number']) : $number;
        $page = (isset($_GET['page']) && $_GET['page']) ? trim($_GET['page']) : $page;
        $search = (isset($_GET['search']) && $_GET['search']) ? trim($_GET['search']) : null;
        // dump($search);exit;
        $where['u.username|email|phone'] = array('like', "%$search%");
        $res = $this->admin($where, $number, $page);
        // dump($res);exit;
        if (isset($res) || empty($res)) {
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','管理员列表筛选',1);*/
            $this->_jsonp('200', '管理员列表数据获取成功', $res);
        } else {
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','管理员列表筛选',0);*/
            $this->_jsonp('1000', '管理员列表数据获取失败', null);
        }

    }


    /*
     * @知果汇后台管理
     * @管理员管理--添加管理员
     * @2017-12-27
     * @潘龙兵
    */
    public function admin_add()
    {
        $password = input('get.password');
        $pwd_ = model('Common')->pwd($password);
        $data = json_decode($pwd_, true);
        $data['username'] = input('get.username');
        $data['sex'] = input('get.sex');
        $data['phone'] = input('get.phone');
        $data['email'] = input('get.email');
        $data['r_id'] = input('get.r_id');
        $data['role'] = 1;
        $data['describe'] = input('get.desc');
        $data['time'] = time();
        $zgh_user = new Data('user');
        $res = $zgh_user->_insert($data);
        if ($res !== false) {
            $userinfo = cookie('username');
            $user = base64_decode($userinfo);
            $id = explode(',', $user);
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','添加管理员',1);*/
            action_log('添加管理员', 'log_admin', 1);
            $this->_jsonp('200', '管理员添加成功', $id);
        } else {
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','添加管理员',0);*/
            action_log('添加管理员', 'log_admin');
            $this->_jsonp('1000', '管理员添加失败', null);
        }
    }


    /*
     * @知果汇后台管理
     * @管理员管理列表--删除管理员
     * @2017-12-27
     * @潘龙兵
    */
    public function admin_del()
    {
        $true = auth();
		if ($true == 2) {
            //存储日志
//        $VisitorLog = new Common;
//        $VisitorLog -> save_admin_log('管理员管理','删除管理员',1);
            $uid = input('get.uid');
            // dump($uid);exit;
            $arr_id = explode(",", $uid);
            $data['status'] = 0;
            /*$zgh_user_info = model('Common')->_zgh_user_info();
            $id = $zgh_user_info['id'];
            if(in_array($id,$arr_id)) $this->_jsonp('1000','不要删掉自己，小傻瓜',null);*/
            // $where = '"uid in ($uid)"';
            if (in_array(1, $arr_id)) $this->_jsonp('400', '超级管理员无法删除', null);
            $where['uid'] = array('in', "$uid");
            $zgh_user = new Data('user');
            $res = $zgh_user->_update($data, $where);
            // dump($res);exit;
            if ($res !== false) {
                //存储日志
//            $VisitorLog = new Common;
//            $VisitorLog -> save_admin_log('管理员管理','删除管理员',1);
                action_log('删除管理员', 'log_admin', 1);
                $this->_jsonp('200', '删除成功', null);
            } else {
                //存储日志
//            $VisitorLog = new Common;
//            $VisitorLog -> save_admin_log('管理员管理','删除管理员',0);
                action_log('删除管理员', 'log_admin');
                $this->_jsonp('1000', '删除失败', null);
            }
        } else if($true == 1) {
            $this->_jsonp('1000', '您没有权限', null);
        }else{
			$this->_jsonp('1000','您未登录',null);
		}
    }


    /*
     * @知果汇后台管理
     * @管理员管理列表--编辑管理员
     * @2017-12-28
     * @潘龙兵
    */
    public function admin_edit()
    {
        $id = input('get.uid');
        $where['uid'] = $id;
        $zgh_user = new Data('user');
        $join[0] = '__ROLE__ r';
        $join[1] = 'r.id = u.r_id';
        $where['u.uid'] = $id;
        $field = 'u.uid,u.username,u.sex,u.phone,u.email,u.r_id,u.describe,r.name';
        $alias = 'u';
        $res = $zgh_user->joinOne($join, $where, $field, $alias);
        if (isset($res) || empty($res)) {
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','编辑管理员页面',1);*/
            $this->_jsonp('200', '管理员信息获取成功', $res);
        } else {
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','编辑管理员页面',0);*/

            $this->_jsonp('1000', '管理员信息获取失败', null);
        }
    }


    /*
     * @知果汇后台管理
     * @管理员管理列表--编辑管理员
     * @2017-12-28
     * @潘龙兵
    */
    public function admin_edit_save()
    {
        $data['username'] = input('get.username');
        $data['sex'] = input('get.sex');
        $data['phone'] = input('get.phone');
        if ($_POST['pwd'] && $_POST['pwd'] != "" && $_POST['pwd'] != null) {
            $_data = model('common')->pwd(input('get.pwd'));
            $data = json_decode($_data, true);
        }
        $data['email'] = input('get.email');
        $data['r_id'] = input('get.r_id');
        $data['describe'] = input('get.desc');
        $where['uid'] = input('get.uid');
        $zgh_user = new Data('user');
        $res = $zgh_user->_update($data, $where);
        if ($res !== false) {
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','编辑管理员资料',1);*/
            action_log('编辑管理员', 'log_admin', 1);
            $this->_jsonp('200', '编辑成功', null);
        } else {
            //存储日志
            /*$VisitorLog = new Common;
            $VisitorLog -> save_admin_log('管理员管理','编辑管理员资料',0);*/
            action_log('编辑管理员', 'log_admin');
            $this->_jsonp('1000', '编辑失败', null);
        }
    }


    /*
     * @知果汇后台管理
     * @管理员密码重置
     * @2017-12-28
     * @潘龙兵
     * @$pwd : 加密后的密码
     *   $uid:接收的用户uid
     * @初始密码为123456
     */
    public function reset_pwd()
    {
        $id = input('get.uid');
        if (isset($id)) {
            $pwd = model("common")->pwd();
            $pwd = json_decode($pwd, true);
            $where['uid'] = $id;
            $zgh_user = new Data('user');
            $res = $zgh_user->_update($pwd, $where);
            if ($res !== false) {
                //存储日志
                /*$VisitorLog = new Common;
                $VisitorLog -> save_admin_log('管理员管理','管理员密码重置',1);*/
                action_log('管理员密码重置', 'log_admin', 1);
                $this->_jsonp('200', '重置成功', null);
            } else {
                //存储日志
                /*$VisitorLog = new Common;
                $VisitorLog -> save_admin_log('管理员管理','管理员密码重置',0);*/
                action_log('管理员密码重置', 'log_admin');
                $this->_jsonp('1000', '重置失败', null);
            }
        } else {
            $this->_jsonp('400', '请求提交格式不正确', null);
        }
    }


    /*
    * @知果汇后台管理
    * @改变状态 1启用/0停用
    * @2017-12-28
    * @潘龙兵
    * @$data['status'] 用户状态 1:启用 2:未启用
    *  $zgh_user_info: 用户信息
    *  $id: 用户id
    *  status: 1(启用)，2(禁用)
    */
    public function change_status()
    {
        $true = auth();
        if ($true == 2) {
            $where['uid'] = input('get.uid');
            $data['status'] = input('get.status');
            // dump(input('get.uid'));exit;
            /*$zgh_user_info = model('common')->_zgh_user_info();
            $id = $zgh_user_info['id'];
            if($id==input('get.id')) $this->_jsonp('400','不要停用自己，小傻瓜');*/
            $zgh_user = new Data('user');
            $res = $zgh_user->_update($data, $where);
            if ($res !== false) {
                //存储日志
                /*$VisitorLog = new Common;
                $VisitorLog -> save_admin_log('管理员管理','启用/禁用管理员',1);*/
                action_log('启用/禁用管理员', 'log_admin', 1);
                $this->_jsonp('200', '修改成功', null);
            } else {
                //存储日志
                /*$VisitorLog = new Common;
                $VisitorLog -> save_admin_log('管理员管理','启用/禁用管理员',0);*/
                action_log('启用/禁用管理员', 'log_admin');
                $this->_jsonp('1000', '修改失败', null);
            }
        } else if($true == 1) {
            $this->_jsonp('1000', '您没有权限', null);
        }else{
			$this->_jsonp('1000','您未登录',null);
		}

    }


    /*
    * @知果汇后台管理
    * @当前管理员信息
    * @2017-12-28
    * @潘龙兵
    * @$zgh_user_info: 当前登录管理员信息
    */
    public function person_info()
    {
        $uid = input('get.uid');
        $zgh_user = new Data('user');
        $join[0] = '__ROLE__ r';
        $join[1] = 'r.id = u.r_id';
        $where['u.uid'] = $uid;
        $field = 'u.uid,u.username,u.sex,u.phone,u.email,u.r_id,u.describe,r.name';
        $alias = 'u';
        $res = $zgh_user->joinOne($join, $where, $field, $alias);
        if (isset($res) & !empty($res)) {
            $this->_jsonp('200', '当前管理员信息获取成功', $res);
        } else {
            $this->_jsonp('1000', '当前管理员信息获取失败', null);
        }
    }


    /*
    * @知果汇后台管理
    * @当前管理员信息
    * @2017-12-28
    * @潘龙兵
    * @$zgh_user_info: 当前登录管理员信息
    */
    public function revise_info()
    {

        $data['username'] = input('get.username');
        $data['sex'] = input('get.sex');
        $data['phone'] = input('get.phone');
        $password = input('get.password');
//        if (isset($_POST['pwd']) && $_POST['pwd'] != "") {
//            $_data = model('common')->pwd(input('get.pwd'));
//            $pwd = json_decode($_data, true);
//            //dump($data);exit;
//            $data['password'] = $pwd['password'];
//            $data['rand'] = $pwd['rand'];
//        }
        $data['email'] = input('get.email');
        $data['describe'] = input('get.desc');
        $data['r_id'] = input('get.r_id');
        $where['uid'] = input('get.uid');


        $pwd = model("common")->pwd($password);
        $pwd = json_decode($pwd, true);
        $data['password'] = $pwd['password'];
        $data['rand'] = $pwd['rand'];

        //dump($data);exit;
        $zgh_user = new Data('user');
        $res = $zgh_user->_update($data, $where);
        if ($res !== false) {
            $userinfo = cookie('username');
            $user = base64_decode($userinfo);
            $id = explode(',', $user);
            if (!isset($id[1])) {
                $this->_jsonp('1000', '您还未登录', null);
            }
            if ($data['username'] == $id[0]) {
                cookie('username', null);
            }
            action_log('编辑管理员信息', 'log_admin', 1);
            $this->_jsonp('200', '编辑成功', $res);
        } else {
            action_log('编辑管理员信息', 'log_admin');
            $this->_jsonp('1000', '编辑失败', null);
        }

    }


}
